The present application relates to computer manufacturing, and particularly to the installation of software releases at remote computer manufacturing or test facilities.
Background: Software Installation
Software installation is normally a burden with new computers, and is often a source of frustration for consumers. Thus, pre-installation of software by the computer manufacturer is very welcome to consumers. Pre-installation also helps to avoid problems which might be caused by software incompatibilities or incorrect installation of software. Pre-installation of software also helps to avoid unnecessary service calls to the computer manufacturer which may be due to the consumer's difficulty in understanding the software installation instructions.
Software Management
Pre-installation of software to prevent incompatibilities or incorrect installation at the consumer level requires careful software management. This management takes place not only prior to but also during the manufacturing process.
Traditionally, pre-installation is accomplished through creation of disk images. A disk image is a file that holds a copy of all of the data, including partitioning and driver information, contained on a given storage medium (usually a hard disk drive). Disk images are usually prepared by a software engineering group once a personal computer has been configured with all of the appropriate components (operating system, applications, utilities, TSRs, etc.). This configured computer is referred to as a "master". The disk images themselves are then replicated and distributed to remote manufacturing sites for installation on consumer machines.
Configuration and installation takes place prior to packing the unit for shipping in order to provide the consumer with a unit that is operable ("ready to run") upon receipt. Configuration of the unit encompasses partitioning the unit's hard drive, setting up boot information, and adding file directory structure information. Installation is the process of writing the physical software files to the hard drive.
Background: Zip Deliverables
The role of a software distribution system is to facilitate the transfer of software, which is to be released to the consumer, to the manufacturing site. Once at the manufacturing site, the software will be installed and configured on a raw (unformatted) hard drive or the hard drive of a newly assembled personal computer.
Current distribution techniques depend on a batch delivery system. The batch is composed of a disk image (namely, the set of files released for installation consisting of all required components) which has been compressed into a single deliverable unit. Compression is a process by which the disk image is condensed in order to take up less storage space. Such a unit is often referred to as a "zip deliverable", which is a reference to the compression utility, PKZIP.TM., most often used to create the compressed file deliverable.
Currently, zip deliverables are distributed in what is known as the drop method, that is, when any change is made to just one of the files constituting the zip deliverable, the entire deliverable must be rebuilt and redistributed (dropped) to the manufacturing site. Such a distribution method puts an even greater demand on transmission capabilities, since all rebuilt deliverables will need to be redistributed to the manufacturing facilities in a relatively short period of time. Without prompt updates, the manufacturer has to allocate greater resources to post-consumer fixes.
Background: Disk Image Disadvantages
The use of disk images for distribution of software has inherent disadvantages. First, the size of disk images needed to distribute complete system software configurations has grown almost exponentially in the past 10 years, from 30 megabytes to over 400 megabytes, due to the increased hard disk space requirements of more functional operating systems and feature-rich applications. Consequently, the storage media for the disk image must meet ever increasing capacity demands and distribution costs continue to rise.
Second, disk images are limited to one configuration. Changes in disk image configuration can result from any difference in hardware and software combinations. For each change in configuration, no matter how slight, an entirely new disk image must be built, replicated, and distributed. Most installation configurations tend to have one or more files in common, such as the operating system or user applications. This results in many files being duplicated and distributed multiple times. Large amounts of hardware storage space are required to store these common files multiple times, once for each minor difference in configuration.
Creating an installation configuration for each possible combination of software and hardware would be time consuming and demand an extraordinary amount of hardware storage space. Assumptions must therefore be made as to what hardware and software configurations will be requested by the customer, and these configurations built accordingly. Therefore, any machine that is tailored for a specific customer must either have a disk image created for it or have some software installed at pre-installation independently of the disk image. As discussed above, creating a disk image for each configuration would increase costs in terms of both time and storage space.
The alternative of installing more software after a disk image has been installed can also create problems. Software installed outside of a disk image may not be fully compatible with that installed from a disk image. This defeats one of the purposes of a disk image, which is to ensure that all of the software it includes functions properly together. Further, installing software outside of a disk image increases the amount of time required to produce a hard drive or computer that is ready to be shipped. Finally, installing software outside of a disk image can impact customer service responses. When non-standard software is installed, problems can arise that will not be familiar to customer services representatives. Their efforts to resolve the problems may take a longer amount of time or be unsuccessful altogether.
Without maintaining an "as-installed" character, the system cannot be guaranteed to function properly and diagnosis of any problems may become difficult. Further, by installing software outside of a zip deliverable package, the time advantage of a single installation process is lost.
Third, disk images cannot be updated. Once a disk image is built, it cannot be modified. Components that comprise disk images may need to be changed because of a software bug fix or new revision. If a component is changed, each disk image incorporating that component must be rebuilt, replicated, and distributed.
Fourth, in addition to greater demands on storage space, the amount of time to distribute multiple disk images has greatly increased. With each different configuration, time must be taken to create its disk image. The disk image must then be distributed. The increase in the size of the disk image, even if the distribution system is computer network based, has a corresponding effect on the disk image transmission time. As the number of different computer configurations grows, improved transmission capability in terms of both speed and accuracy is required. Both speed and accuracy factor into maintaining efficient distribution of software to computer manufacturing facilities. Minimizing distribution time for disk images can be critical when updates to components have occurred to fix software bugs. The faster the disk image can be propagated to the installation site, the fewer the number of computers released with faulty software.
Finally, zip deliverables have the inherent disadvantage of a lack of security. During the distribution process, the media which contain the software may not be within the control of the manufacturer. If the zip deliverables are distributed via a common carrier, they could be misplaced or stolen. Because the zip deliverable is merely a compressed version of a configured software install, there is some risk that it could be used by anyone with the proper hardware and software to install or upgrade software on their own machine or the machines of others. Further, there is some risk that an intercepted zip deliverable could be imperceptibly altered to remove or add data (including viruses) and then sent on to the remote manufacturing facility.
Remote manufacturing facilities are not necessarily under the control of the manufacturing headquarters. In fact, some remote manufacturing facilities may be responsible for the assembly and configuration of machines from many different computer manufacturers. The zip deliverables themselves may contain the proprietary software of a particular company. Therefore, security of pre-installation software configurations is important within the remote manufacturing facility. A further concern, even at the remote manufacturing facility, is that the zip deliverables, due to their small size and ready mobility, could become misappropriated.
Background: Computer Manufacturing Constraints
Mass-manufacturing of mid-market or high-end personal computers faces some difficult constraints: software must be released from a software engineering group and distributed to a computer manufacturing facility without alterations that would change the configuration for a particular machine. The complete hardware and software configuration must be carefully controlled, to avoid substitutions which introduce incompatibilities; the distribution process must be efficient in order to reduce the amount of information that is distributed; and revised system configurations must be manufactured and shipped very quickly in order to reduce the number of computers which leave the factory without the most current version of released software.
A further important constraint is time-to-market. The ability to meet consumer demands quickly, and provide the newest features as soon as possible, is crucial. Thus, the software pre-installation process must not be too rigid. It must remain in a state that allows new configurations and combinations of existing configurations to be integrated quickly and easily to satisfy changing customer demands.
Background: Datablasting
Current software pre-installation methods utilize datablasting to write a particular software configuration onto a raw hard drive. With datablasting, drive partition information, the "MBR" (master boot record), the "FAT" (file allocation table), and the software to be installed are all written to the drive with one write command. Datablasting essentially copies the contents of one drive to another drive. In its basic form, datablasting occurs on only one drive at a time (since it is basically a disk copy operation). It has the advantage of allowing a hard drive to be prepared for delivery quickly. However, datablasting is not a flexible tool for software installation. Datablasting requires that the drive partition information, the MBR, the FAT, and the software to be installed be predetermined. This determination is not made at the factory but by the group releasing the software for installation. Therefore, datablasting must rely on the zip deliverables described above.
Channel Configuration Program Data-loading Process
The present application discloses a system of software installation in computer manufacturing which manages the installation of software which has been released by a software engineering group onto raw hard drives or assembled computers at a remote manufacturing facility. The disclosed installation system seeks to overcome the deficiencies of present software installation systems. In overcoming these deficiencies, the installation system disclosed contains several innovative features.
One of the innovative features disclosed is the ability to install software onto both raw hard drives and assembled computers on the same network (surrogate and direct downloading). With this ability the amount of installation hardware needed at the manufacturing facility can be reduced. Having this ability also allows the use of a single process to direct the installation of software.
Another of the innovative features disclosed is the ability to install software onto multiple raw hard drives at the same time (multiple surrogate downloads). With this ability, the amount of installation hardware needed at the manufacturing facility can be reduced. Further, the time required to prepare multiple raw drives with the same data can be reduced substantially.
Another of the innovative features disclosed is the use of database structures which support the installation of software which has been released by a software engineering group as individual files or as a SKU/BOM disk image. The use of a database to support installation of released software allows PCs and raw hard drives to be configured to order (CTO) regardless of the SKU/BOM relationships created by a software engineering group.
Surrogate and Direct Data-loading
The software distribution system of the presently preferred embodiment has the ability to install software onto both raw hard drives (surrogate downloading) and assembled computers (direct downloading) on the same network. The downloading architecture at the manufacturing facility allows machines containing raw hard drives (surrogates) to be connected to a local area network (LAN). Also on the LAN is a server containing all of the SKU/BOM combinations that are available for download (the "PRISM" server). The PRISM server has access to a server containing the software configuration to be installed on the raw drive (the "SFDM" server). The downloading architecture also allows assembled computers (PCs) to be connected to the LAN and obtain access to the same set of information.
The process which initiates and manages software downloading is executed from either the assembled PC or the surrogate machine. The process automatically detects whether it is downloading software onto a raw hard drive or onto the hard drive of an assembled computer. Based on the serial number of the hard drive or assembled unit, a configuration list of the software to be downloaded is obtained from the SFDM server. This list, in SKU/BOM part number form, is used by the download process to retrieve the physical files to be installed, including partition information, MBR, and software data files. In the case of an assembled unit, further diagnostics can be loaded and run to check the installation of both the hardware and software. Unlike current datablasting techniques which connect a raw drive to a data source without the aid of a surrogate machine, in the presently preferred embodiment, the raw hard drive is connected to a LAN just as the assembled units. Therefore, the LAN can provide data to both the surrogate and assembled units in the same manner.
Multiple Surrogate Data-loading
Another of the innovative features disclosed in a preferred implementation is the capability to install software onto multiple raw hard drives at the same time. In a contemplated best mode, the surrogate machine connected to a LAN, described above, can be configured with multiple drive bays, enabling it to receive multiple raw hard drives. If the surrogate machine is configured with a multitasking environment, such as Windows NT.TM., the software configuration data received over the LAN can be installed on any or all of the drives present in the surrogate machine. This particular feature greatly reduces production time for large orders of drives, each with the same software configuration requirements. Further, it allows for a reduction in the number of surrogate machines required in the manufacturing facility.
Configure to Order
Another of the innovative features disclosed is the use of database structures and a software selection process which support the installation of software which has been released by a software engineering group as individual files or as a SKU/BOM disk image. These structures allow software for installation to be selected as packages, or groups of files, and individual files.
A set of configuration rules associated with each selection ensures that the selections are compatible with each other and that all of the necessary supporting software for a particular selection is installed. The configuration rules consist of requirements for hardware, operating system, language, and other supporting software which must be installed to support the selected software. The configuration rules can also maintain a record of known incompatibilities. The software selection process is responsible for seeing that these requirements are met and the known incompatibilities avoided for each software selection. By enforcing configuration rules for each selection, the problem of incompatibility between hardware and software, and incompatibility between installed software packages is eliminated. Therefore, it is no longer necessary to rely on "as-installed" complete packages from a software engineering group. Instead, the software engineering group can release smaller groups of files, or individual files as they should be installed.
In turn, the pre-installation of software can take place without being tied to a zip deliverable. The database structures can manage the distribution and installation of individual file releases and releases of files that are logically grouped together (SKU/BOM).
Advantages
The advantages of the various disclosed innovations in the optimized installation model are numerous. One advantage of the various innovations is reduced installation time as both surrogate (including multiple drive) and direct downloading can take place from the same dataset on the server.
Another advantage is reduced pre-installation cost, since software can be directly installed onto the hard drives of assembled units, eliminating the need for some surrogate machines. This results in a reduction in the amount of hardware (surrogate machines and network architecture) required at the manufacturing facility. Further, separate disk images for each minor configuration change will not have to be produced and distributed, any configuration needed can be created via the software selection process.
Another advantage is more efficient updating: Updates can be released at any time, without the need to rebuild multiple disk images and without the delay usually associated with their distribution.
Another advantage of the disclosed innovations is the ability to meet consumer demands of built to order PCs with configured to order software pre-installed. This results in delivery of a reliable custom product in a very short period of time. Of course, it will frequently be necessary to build a single configuration repeatedly.
Another advantage of the preferred system is its ability to respond efficiently to large orders of similar configurations. The multiple surrogate download process can be used at the computer manufacturing facility to create the same software configuration across several hard drives in the time formerly taken to create one.